package iconSwingStates.Transitions;

import iconSwingStates.StateMachine.SMIconStateMachine;

/**
 * TTyped corresponds to the SwingStates KeyTyped and MouseClicked transition. It is fired when a button is pressed then released
 * @author uribe - gaget
 *
 */
public class TTyped  extends TTransition{
	
	//Without Slot
	/**
	 * Constructor without slots, except the default boolean one
	 * @param nomTransition Name of the transition
	 * @param pointer Name of the pointer
	 * @param obligatory True if the slot must be connected
	 */
	public TTyped(String nomTransition, String pointer, boolean obligatory) {
		super(nomTransition,pointer, SMIconStateMachine.BOOLEAN,obligatory);
	}
	/**
	 * Constructor without slots, except the default boolean one
	 * @param nomTransition Name of the transition
	 * @param pointer Name of the pointer
	 * @param obligatory True if the slot must be connected
	 * @param outputState The output state
	 */
	public TTyped(String nomTransition, String pointer, boolean obligatory,String outputState) {
		super(nomTransition,pointer, SMIconStateMachine.BOOLEAN,obligatory,outputState);
	}

	
	//UniSlot
	/**
	 * 
	 * @param nomTransition
	 * @param type
	 * @param pointer
	 * @param obligatory
	 */
	public TTyped(String nomTransition,String pointer, int type, boolean obligatory) {
		super(nomTransition,pointer,  type,obligatory);
	}
	/**
	 * Constructor for transitions without a default boolean slot
	 * @param nomTransition Name of the transition
	 * @param type Type of the slot
	 * @param pointer Name of the pointer
	 * @param obligatory True if the slot must be connected
	 * @param outputState
	 */
	public TTyped(String nomTransition,String pointer, int type, boolean obligatory, String outputState) {
		super(nomTransition,pointer,type,  obligatory, outputState);
	}	
	/**
	 * Constructor for transitions without a pointer and just a slot
	 * @param nomTransition Name of the transition
	 * @param type Type of the slot
	 * @param obligatory True if the slot must be connected
	 */
	public TTyped(String nomTransition, int type, boolean obligatory) {
		super(nomTransition,type, obligatory);
	}
	/**
	 * Constructor for transitions without a pointer and just a slot
	 * @param nomTransition Name of the transition
	 * @param type Type of the slot
	 * @param obligatory True if the slot must be connected
	 * @param output The output state
	 */
	public TTyped(String nomTransition, int type, boolean obligatory , String output) {
		super(nomTransition,type,  obligatory, output);
	}
	
	
	//MultiSlot
	
	/**
	 * Constructor for transitions with a pointer and more than one slot
	 * @param nomTransition Name of the transition
	 * @param pointer The name of the pointer
	 * @param type Type of the slot
	 * @param obligatory True if the slot must be connected
	 * @param synchro True if the slots must have a synchronized activity
	 */
	public TTyped(String nomTransition,String pointer, int[] type, boolean obligatory,
			boolean synchro) {
		super(nomTransition, pointer,type, obligatory, synchro);
	}
	/**
	 * Constructor for transitions with a pointer and more than one slot
	 * @param nomTransition Name of the transition
	 * @param pointer The name of the pointer
	 * @param type Type of the slot
	 * @param obligatory True if the slot must be connected
	 * @param synchro True if the slots must have a synchronized activity
	 * @param outputState The output state
	 */
	public TTyped(String nomTransition,String pointer, int[] type, boolean obligatory,
			boolean synchro,  String outputState) {
		super(nomTransition, type, obligatory, synchro);
	}
}
